/*Opciones de Cabecera*/
header{ package pl.equipo13.p6; }
/* Analizador lexico */
class AnalexXML extends Lexer;
options{
	k = 3;
 	importVocab = AnasintXML;
 	charVocabulary = '\3'..'\377'; 
	caseSensitiveLiterals = false; //False = Insensible a mayusculas/minisculas.
}
tokens{
	BIBLIOTECA = "biblioteca";
	LIBRO = "libro";
	TITULO = "titulo";
	AUTOR = "autor";
	EDITORIAL = "editorial";
}
/* Codigo Java */
{boolean sw = true;}

/* Reglas */
protected NUEVA_LINEA: ('\n' | "\r\n") {newline();};
protected DIGITO: '0'..'9';
protected LETRA: ('A'..'Z') | ('a'..'z') | '.';
protected NUMERO: (DIGITO)+('.'(DIGITO)+)?;
BLANCO: (' '|'\t'|NUEVA_LINEA) {$setType(Token.SKIP);};
COMENTARIO: "<!--" (options {greedy=false;}:.)* "-->" {$setType(Token.SKIP);};
MENOR: '<' {sw = true;};
MAYOR: '>' {sw = false;};
MENORBARRA: "</" {sw = false;};
ATRIBUTO: {sw}? (LETRA)+;
IGUAL: {sw}? '=';
VALOR: {sw}? '"' (LETRA)+ '"';
CADENA: (BLANCO | LETRA | NUMERO)+;